#ifndef _SYNQ_H
#define _SYNQ_H

#include "status_tree.h"
#include "dirs_list.h"

typedef struct _sSynq sSynq;
struct _sSynq {
    sST *tree;
    sDL dirs;
};

#define synq_is_usable(s) ((s) && (s)->tree && (s)->dirs.dirs && (s)->dirs.numdirs)

/*
 *  on passe une liste de dossiers et leur nombre
 *  on récupère une arborescence de dossiers/fichiers avec leur statut dans chaque dossier source
 */
sSynq *     synq_get_status     (char **dirs, unsigned int numdirs);
int         synq_update_status  (sSynq *synq);
sSynq *     synq_dup            (sSynq *synq);
void        synq_free           (sSynq *synq);

// TODO : add synq_print{,_debug}

#endif

